Các biến môi trường đích thực Biến_môi_trường

Unix

Chứa danh sách thư mục được phân tách bằng dấu hai chấm mà shell tìm kiếm các lệnh không chứa dấu gạch chéo trong tên của chúng (các lệnh có dấu gạch chéo được hiểu là tên tệp để thực thi và shell cố gắng thực thi các tệp trực tiếp). Nó tương đương với biến DOS, OS / 2 và Windows% PATH%

$HOMECó vị trí của người dùng thư mục home. Mặc dù thư mục home của người dùng hiện tại cũng có thể tìm hiểu thông qua C-chức năng getpwuidgetuid, $HOME thường được sử dụng để thuận tiện trong kịch bản shell khác nhau (và bối cảnh khác). Sử dụng biến môi trường cũng cung cấp cho người dùng khả năng trỏ đến một thư mục khác.$PWDBiến này trỏ đến thư mục hiện tại. Tương đương với đầu ra của lệnh pwd khi được gọi mà không có đối số.$DISPLAYChứa số nhận dạng cho màn hình mà các chương trình X11 sẽ sử dụng theo mặc định.$LD_LIBRARY_PATHTrên nhiều hệ thống với một Unix mối liên kết động, chứa một danh sách thư đại tràng-tách các thư mục mà mối liên kết động nên tìm kiếm đối tượng chia sẻ khi xây dựng một hình ảnh quá trình sau khi exec, trước khi tìm kiếm trong bất kỳ thư mục khác.$LIBPATH hoặc $SHLIB_PATHCác lựa chọn thay thế cho $LD_LIBRARY_PATH thường được sử dụng trên các phiên bản Unix cũ hơn.$LANG, $LC_ALL, $LC_. . .$LANG được sử dụng để đặt thành ngôn ngữ mặc định. Ví dụ: nếu các giá trị ngôn ngữ là pt_BR, thì ngôn ngữ được đặt thành (Braxin) tiếng Bồ Đào Nha và thông lệ Braxin được sử dụng nếu có liên quan. Các khía cạnh khác nhau của bản địa hóa được kiểm soát bởi từng biến số $LC_ ($LC_CTYPE, $LC_ COLLATE, $LC_DATE v.v.). $LC_ALL có thể được sử dụng để buộc cùng một ngôn ngữ cho tất cả các khía cạnh.$TZĐề cập đến múi giờ. Nó có thể ở một số định dạng, hoặc chỉ định múi giờ hoặc tham chiếu đến một tệp (trong /usr/share/zoneinfo).

DOS

Trong DOS, môi trường chính được cung cấp bởi bộ xử lý lệnh chính, môi trường này kế thừa môi trường trước được định nghĩa trong CONFIG. SYS khi được tải lần đầu. Kích thước của nó có thể được cấu hình thông qua tham số COMMAND /E:n trong khoảng từ 160 đến 32767 byte. Các phân đoạn môi trường cục bộ được kế thừa cho các quy trình con thường được giảm xuống kích thước của nội dung mà chúng giữ. Một số bộ xử lý dòng lệnh (như 4DOS) cho phép xác định một lượng không gian môi trường trống tối thiểu sẽ có sẵn khi khởi chạy trình bao thứ cấp. Trong khi nội dung của các biến môi trường không thay đổi khi lưu trữ, tên của chúng (không có " % ") luôn được chuyển đổi thành chữ hoa, ngoại trừ các biến tiền môi trường được xác định thông qua CONFIG. Chỉ thị SYS SET trong DR DOS 6.0 trở lên (và chỉ với SWITCHES=/L (đối với "cho phép tên chữ thường") trong DR-DOS 7.02 trở lên). Về nguyên tắc, MS-DOS 7.0 trở lên cũng hỗ trợ tên biến viết thường (%windir%), nhưng không cung cấp phương tiện để người dùng xác định chúng. Tên biến môi trường chứa các chữ cái thường được lưu trữ trong môi trường giống như các biến môi trường bình thường, nhưng vẫn ẩn đối với hầu hết các phần mềm DOS, vì chúng chỉ được viết để mong đợi các biến chữ hoa. Một số bộ xử lý lệnh giới hạn độ dài tối đa của tên biến là 80 ký tự. Trong khi về cơ bản chỉ bị giới hạn bởi kích thước của phân đoạn môi trường, một số chương trình DOS và Windows 16 bit không mong đợi nội dung của các biến môi trường vượt quá 128 ký tự. COMMAND. DR-DOS COMMAND. COM hỗ trợ các biến môi trường lên đến 255, 4DOS thậm chí lên đến 512 ký tự. Kể từ khi COMMAND. COM có thể được định cấu hình (qua /L:128..1024) để hỗ trợ các dòng lệnh lên đến 1024 ký tự bên trong MS-DOS 7.0 trở lên, các biến môi trường cũng phải chứa ít nhất 1024 ký tự. Trong một số phiên bản DR-DOS, môi trường được chuyển cho trình điều khiển, thường không cần môi trường của chúng sau khi cài đặt, có thể bị thu hẹp hoặc chuyển vị trí thông qua SETENV hoặc INSTALL[HIGH] / LOADHIGH /Z (môi trường không), /D[: loaddrive ] (ổ thay thế, ví dụ: B:TSR. COM) và /E (định vị lại môi trường ở trên chương trình) để giảm thiểu hiệu quả bộ nhớ thường trú của trình điều khiển.

Trong chế độ hàng loạt, các biến môi trường không tồn tại được thay thế bằng một chuỗi có độ dài bằng không.

%APPEND% (được hỗ trợ kể từ DOS 3.3)Biến này chứa một danh sách các thư mục được phân tách bằng dấu chấm phẩy để tìm kiếm tệp. Nó thường được thay đổi thông qua lệnh APPEND /E, lệnh này cũng đảm bảo rằng tên thư mục được chuyển đổi thành chữ hoa. Một số phần mềm DOS thực sự mong đợi tên được lưu trữ bằng chữ hoa và độ dài của danh sách không vượt quá 121 ký tự, do đó tốt nhất không nên sửa đổi biến thông qua lệnh SET. Tên tệp dài có chứa khoảng trắng hoặc các ký tự đặc biệt khác không được đặt trong dấu ngoặc kép (").%CONFIG% (được hỗ trợ từ MS-DOS 6.0PC DOS 6.1, cũng được hỗ trợ bởi ROM-DOS)Biến này giữ tên tượng trưng của cấu hình khởi động hiện được chọn. Nó được thiết lập bởi DOS BIOS (IO. SYS, IBMBIO. COM, v.v.) đến tên được xác định bởi CONFIG. tương ứng CONFIG. SYS chỉ thị MENUITEM trước khi khởi chạy bộ xử lý lệnh chính. Mục đích chính của nó là cho phép các trường hợp đặc biệt hơn nữa trong AUTOEXEC. BAT và các lô tương tự tùy thuộc vào tùy chọn đã chọn tại thời điểm khởi động. Điều này có thể được mô phỏng trong DR-DOS bằng cách sử dụng CONFIG. Chỉ thị SYS SET giống như SET CONFIG=1.%CMDLINE% (được giới thiệu với 4DOS, cũng được hỗ trợ kể từ MS-DOS 7.0)Biến này chứa văn bản được mở rộng đầy đủ của dòng lệnh hiện đang thực thi. Nó có thể được các ứng dụng đọc để phát hiện việc sử dụng và truy xuất các dòng lệnh dài, vì phương pháp truyền thống để truy xuất các đối số dòng lệnh thông qua PSP (hoặc các hàm API liên quan) bị giới hạn ở 126 ký tự và không còn khả dụng khi FCB được mở rộng hoặc DTA mặc định được sử dụng. Trong khi 4DOS hỗ trợ các dòng lệnh dài hơn, COMMAND. COM vẫn chỉ hỗ trợ tối đa 126 ký tự tại dấu nhắc theo mặc định (trừ khi được ghi đè bằng /U:128..255 để chỉ định kích thước của bộ đệm dòng lệnh), nhưng tuy nhiên, các dòng lệnh nội bộ có thể dài hơn thông qua mở rộng biến fe (tùy thuộc trên /L:128..1024 để chỉ định kích thước của bộ đệm bên trong). Ngoài byte độ dài dòng lệnh trong PSP, dòng lệnh PSP thường bị giới hạn bởi ASCII-13 và các dòng lệnh dài hơn 126 ký tự thường sẽ bị cắt bớt bằng cách chèn ASCII-13 ở vị trí 127, nhưng không thể dựa vào điều này trong tất cả các trường hợp. Biến sẽ bị dập tắt cho các lệnh bên ngoài gọi với một trước @ -symbol như trong @XCOPY... để tương thích ngược và để giảm thiểu kích thước của môi trường khi tải không chuyển nơi ở TSR. Một số phiên bản beta của Microsoft Chicago đã sử dụng %CMDLINE% để chỉ lưu trữ phần còn lại của dòng lệnh vượt quá 126 ký tự thay vì dòng lệnh hoàn chỉnh.%COMSPEC% (được hỗ trợ kể từ DOS 2.0)Biến này chứa đường dẫn 8.3 đầy đủ đến bộ xử lý lệnh, thường là C:\ COMMAND. COM hoặc C:\DOS\COMMAND. COM. Nó không được chứa tên tệp dài, nhưng trong DR-DOS, nó có thể chứa mật khẩu tệp và thư mục. Nó được thiết lập bởi bộ xử lý lệnh chính để trỏ đến chính nó (thường phản ánh các cài đặt của CONFIG. SYS chỉ thị SHELL), để phần thường trú của bộ xử lý lệnh có thể tải lại phần tạm thời của nó từ đĩa sau khi thực thi các chương trình lớn hơn. Giá trị có thể được thay đổi trong thời gian chạy để phản ánh những thay đổi trong cấu hình, điều này sẽ yêu cầu bộ xử lý lệnh tự tải lại từ các vị trí khác. Biến cũng được sử dụng khi khởi chạy trình bao thứ cấp.%COPYCMD% (được hỗ trợ từ MS-DOS 6.2PC DOS 6.3, cũng được hỗ trợ bởi ROM-DOS)Cho phép người dùng chỉ định công tắc /Y (giả sử "Có" trên các truy vấn) làm mặc định cho các lệnh COPY, XCOPYMOVE. Một mặc định của /Y có thể được ghi đè bằng cách cung cấp công tắc /-Y trên dòng lệnh. Công tắc /Y hướng dẫn lệnh thay thế các tệp hiện có mà không cần nhắc xác nhận.%LANG% (được hỗ trợ từ MS-DOS 7.0)Biến này được hỗ trợ bởi một số công cụ để chuyển đổi ngôn ngữ cho các thư trong các vấn đề đa ngôn ngữ.%LANGSPEC% (được hỗ trợ từ MS-DOS 7.0)Biến này được hỗ trợ bởi một số công cụ để chuyển đổi ngôn ngữ cho các thư trong các vấn đề đa ngôn ngữ.%NO_SEP% (được hỗ trợ từ PC DOS 6.3 và DR-DOS 7.07)Biến này điều khiển việc hiển thị các dấu phân cách hàng nghìn trong các thông báo của các lệnh khác nhau. Được cấp theo mặc định, chúng có thể bị loại bỏ bằng cách chỉ định SET NO_SEP=ON hoặc SET NO_SEP=1 trong PC   DOS. DR-DOS cũng cho phép ghi đè dấu phân tách hàng nghìn của hệ thống được hiển thị như trong fe SET NO_SEP=..%PATH% (được hỗ trợ kể từ DOS 2.0)Biến này chứa một danh sách các thư mục được phân tách bằng dấu chấm phẩy trong đó trình thông dịch lệnh sẽ tìm kiếm các tệp thực thi. Tương đương với biến Unix $PATH (nhưng một số ứng dụng DOS và Windows cũng sử dụng danh sách để tìm kiếm các tệp dữ liệu tương tự như $LD_LIBRARY_PATH trên các hệ thống giống Unix). Nó thường được thay đổi thông qua lệnh PATH (hoặc PATH /E trong MS-DOS 6.0), lệnh này cũng đảm bảo rằng tên thư mục được chuyển đổi thành chữ hoa. Một số phần mềm DOS thực sự mong muốn các tên được lưu trữ bằng chữ hoa và độ dài của danh sách không vượt quá 123 ký tự, do đó tốt hơn là không nên sửa đổi biến thông qua lệnh SET. Tên tệp dài có chứa khoảng trắng hoặc các ký tự đặc biệt khác không được đặt trong dấu ngoặc kép ("). Theo mặc định, thư mục hiện tại được tìm kiếm đầu tiên, nhưng một số bộ xử lý dòng lệnh như 4DOS cho phép " . " (Đối với "thư mục hiện tại") cũng được đưa vào danh sách để ghi đè thứ tự tìm kiếm này; một số chương trình DOS không tương thích với tiện ích mở rộng này.%PROMPT% (được hỗ trợ kể từ DOS 2.0)Biến này chứa một chuỗi $ -tokenized xác định việc hiển thị lời nhắc. Nó thường được thay đổi thông qua lệnh PROMPT.%TEMP% (và %TMP%)Các biến này chứa đường dẫn đến thư mục nơi lưu trữ các tệp tạm thời. Các công cụ hệ điều hành thường chỉ sử dụng %TEMP%, trong khi các chương trình của bên thứ ba cũng sử dụng %TMP%. Thông thường %TEMP% được ưu tiên hơn %TMP%.

Họ DR-DOS hỗ trợ một số biến môi trường tiêu chuẩn bổ sung bao gồm:

%BETA%Biến này chứa một thông báo tùy chọn được hiển thị bởi một số phiên bản (bao gồm cả DR DOS 3.41) của COMMAND. COM khi khởi động shell thứ cấp.%DRDOSCFG% / %NWDOSCFG% / %OPENDOSCFG%Biến này chứa thư mục (không có dấu " \ ") để tìm kiếm . INI. Tệp cấu hình CFG (nghĩa là các tệp ứng dụng DR-DOS cụ thể như TASKMGR. INI, TASKMAX. INI, VIEWMAX. INI, FASTBACK. CFG, v.v., phân loại các tệp cụ thể như COLORS. INI hoặc các tệp chung như DRDOS. INI, NWDOS. INI, OPENDOS. INI hoặc DOS. INI), như được sử dụng bởi các lệnh INSTALLSETUP và các chương trình DR-DOS khác nhau như DISKOPT, DOSBOOK, EDIT, FBX, FILELINK, LOCK, SECURITY. OVL / NWLOGIN. EXE, SERNO, TASKMAX, TASKMGR, VIEWMAX hoặc UNDELETE. Nó không được chứa các tên tệp dài.%DRCOMSPEC%Biến này tùy chọn giữ một đường dẫn thay thế đến bộ xử lý lệnh được ưu tiên hơn đường dẫn được xác định trong biến %COMSPEC%, tùy chọn bao gồm mật khẩu tệp và thư mục. Ngoài ra, nó có thể giữ một giá trị đặc biệt là " ON " hoặc " 1 " để thực thi việc sử dụng biến %COMSPEC% ngay cả trong các tình huống mà biến %COMSPEC% có thể trỏ đến bộ xử lý dòng lệnh sai, ví dụ: khi chạy một số phiên bản của lệnh DR-DOS SYS trong hệ điều hành nước ngoài.%DRSYS%Đặt biến này thành " ON " hoặc " 1 " sẽ buộc một số phiên bản của lệnh DR-DOS SYS hoạt động trong các hệ điều hành nước ngoài thay vì hiển thị cảnh báo.%FBP_USER%Chỉ định tên người dùng được sử dụng bởi lệnh FastBack FBX{user}. Tệp cấu hình FB trong Novell DOS 7.%HOMEDIR%Biến này có thể chứa thư mục chính trong DR-DOS (bao gồm DR DOS 5.0 và 6.0).%INFO%Trong một số phiên bản DR-DOS COMMAND.COM, biến này xác định chuỗi được hiển thị bằng mã thông báo $ I của lệnh PROMPT. Ví dụ, nó có thể được sử dụng để thông báo cho người dùng cách thoát khỏi các shell thứ cấp.%TASKMGRWINDIR%Biến này chỉ định thư mục, nơi chứa SYSTEM. Windows SYSTEM. INI được sử dụng bởi trình đa nhiệm DR-DOS TASKMGR, ghi đè thủ tục mặc định để định vị tệp.%$CLS%Biến này xác định trình tự điều khiển được gửi đến trình điều khiển bảng điều khiển để xóa màn hình khi lệnh CLS được đưa ra, do đó ghi đè giá trị mặc định bên trong (" ←[2J " trong DR-DOS, " ←E " trong DOS Plus 1.2 trên Amstrad máy cũng như trong DOS Đồng thời, Multiuser DOS và REAL / 32 cho thiết bị đầu cuối VT52 hoặc " ←+ " trong Multiuser DOS cho thiết bị đầu cuối ASCII). Nếu biến không được xác định và không có ANSI. SYS điều khiển bảng điều khiển SYS được phát hiện, DR-DOS COMMAND. COM sẽ trực tiếp xóa màn hình thông qua chức năng INT 10h/AH=00h BIOS, giống như MS-DOS / PC   COMMAND. DOS COMMAND. COM không. Chú thích \nnn đặc biệt cho các số bát phân được hỗ trợ để cho phép định nghĩa các ký tự đặc biệt như ESC (ASCII-27 = "←" = 1Bh = 33o), như fe trong SET $CLS=\033[2J. Để gửi dấu gạch chéo ngược (" \ "), nó có thể được nhân đôi " \\ ".%$PAGE%Được hỗ trợ bởi DOS Plus chấp nhận các giá trị " ON " hoặc " OFF " để kiểm soát phân trang. Đặt điều này thành " ON " có ảnh hưởng tương tự như thêm /P vào các lệnh hỗ trợ nó (như DIR hoặc TYPE).%SystemRoot%Biến %SystemRoot% là một biến môi trường toàn hệ thống đặc biệt được tìm thấy trên họ hệ điều hành Windows NT. Giá trị của nó là vị trí của thư mục hệ thống, bao gồm ổ đĩa và đường dẫn. Ổ đĩa giống như %SystemDrive% và đường dẫn mặc định trên một bản cài đặt sạch sẽ tùy thuộc vào phiên bản của hệ điều hành. Theo mặc định: %windir%Biến này trỏ đến thư mục Windows. (Trên họ hệ điều hành Windows NT, nó giống với biến %SystemRoot%). Theo mặc định, Windows 95, Windows 98Windows ME được cài đặt trong " C:\Windows ". Đối với các phiên bản Windows khác, hãy xem mục %SystemRoot% ở trên.

Các biến quản lý người dùng [cần dẫn nguồn] lưu trữ thông tin liên quan đến tài nguyên và cài đặt thuộc sở hữu của các hồ sơ người dùng khác nhau trong hệ thống. Theo nguyên tắc chung, các biến này không đề cập đến các tài nguyên hệ thống hoặc vị trí quan trọng cần thiết để HĐH chạy.

%ALLUSERSPROFILE% (%PROGRAMDATA% kể từ Windows Vista)Biến này mở rộng đến đường dẫn đầy đủ đến thư mục hồ sơ Tất cả người dùng. Hồ sơ này chứa các tài nguyên và cài đặt được sử dụng bởi tất cả các tài khoản hệ thống. Các liên kết lối tắt được sao chép vào menu Bắt đầu của Tất cả Người dùng \ 'hoặc các thư mục Màn hình nền sẽ xuất hiện trong menu Bắt đầu hoặc Màn hình nền của mỗi người dùng.%USERDOMAIN%Tên của Nhóm làm việc hoặc Miền Windows mà người dùng hiện tại thuộc về. Biến có liên quan, %LOGONSERVER%, giữ tên máy chủ của máy chủ đã xác thực thông tin đăng nhập của người dùng hiện tại (tên và mật khẩu). Đối với PC gia đình và PC trong một nhóm làm việc, máy chủ xác thực thường là chính PC đó. Đối với PC trong miền Windows, máy chủ xác thực là bộ điều khiển miền (bộ điều khiển miền chính hoặc PDC, trong các miền dựa trên Windows NT 4).%USERPROFILE%Một biến môi trường toàn hệ thống đặc biệt được tìm thấy trên Windows NT và các dẫn xuất của nó. Giá trị của nó là vị trí của thư mục hồ sơ của người dùng hiện tại, trong đó được tìm thấy tổ hợp đăng ký HKCU (NTUSER) của người dùng đó. Người dùng cũng có thể sử dụng biến %USERNAME% để xác định nhận dạng đăng nhập của người dùng đang hoạt động.

Biến hệ thống tùy chọn   không được chỉ định rõ ràng theo mặc định nhưng có thể được sử dụng để sửa đổi hành vi mặc định của một số lệnh bảng điều khiển tích hợp sẵn. Các biến này cũng không cần phải được chỉ định rõ ràng làm đối số dòng lệnh.

Giá trị mặc định

Các bảng sau đây cho thấy các giá trị mặc định điển hình của các biến môi trường nhất định trong các phiên bản tiếng Anh của Windows vì chúng có thể được truy xuất trong CMD.

(Một số biến này cũng được xác định khi chạy COMMAND. COM trong Windows, nhưng khác ở một số chi tiết quan trọng nhất định: Dưới COMMAND. COM, tên của biến môi trường luôn được viết hoa. Một số, nhưng không phải tất cả các biến đều chứa 8.3 ngắn chứ không phải tên tệp dài. Trong khi một số biến có trong môi trường CMD bị thiếu, thì cũng có một số biến đặc trưng cho môi trường COMMAND.)

VariableLocale specificWindows XP (CMD)Windows Vista and later (CMD)
%ALLUSERSPROFILE%C:\Documents and Settings\All UsersC:\ProgramData
%APPDATA%C:\Documents and Settings\{username}\Application DataC:\Users\{username}\AppData\Roaming
%CommonProgramFiles%C:\Program Files\Common FilesC:\Program Files\Common Files
%CommonProgramFiles(x86)%C:\Program Files (x86)\Common Files (only in 64-bit version)C:\Program Files (x86)\Common Files (only in 64-bit version)
%CommonProgramW6432%%CommonProgramW6432% (not supported, not replaced by any value)C:\Program Files\Common Files (only in 64-bit version)
%COMPUTERNAME%Không{computername}{computername}
%ComSpec%KhôngC:\Windows\System32\cmd.exeC:\Windows\System32\cmd.exe
%HOMEDRIVE%KhôngC:C:
%HOMEPATH%\Documents and Settings\{username}\Users\{username}
%LOCALAPPDATA%%LOCALAPPDATA% (not supported, not replaced by any value)C:\Users\{username}\AppData\Local
%LOGONSERVER%Không\\{domain_logon_server}\\{domain_logon_server}
%PATH%C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;{plus program paths}C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;{plus program paths}
%PATHEXT%Không.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.WSF;.WSH.com;.exe;.bat;.cmd;.vbs;.vbe;.js;.jse;.wsf;.wsh;.msc
%ProgramData%%ProgramData% (not supported, not replaced by any value)%SystemDrive%\ProgramData
%ProgramFiles%%SystemDrive%\Program Files%SystemDrive%\Program Files
%ProgramFiles(x86)%%SystemDrive%\Program Files (x86) (only in 64-bit version)%SystemDrive%\Program Files (x86) (only in 64-bit version)
%ProgramW6432%%ProgramW6432% (not supported, not replaced by any value)%SystemDrive%\Program Files (only in 64-bit version)
%PROMPT%KhôngCode for current command prompt format, usually $P$GCode for current command prompt format, usually $P$G
%PSModulePath%%PSModulePath% (not supported, not replaced by any value)%SystemRoot%\system32\WindowsPowerShell\v1.0\Modules\
%PUBLIC%%PUBLIC% (not supported, not replaced by any value)%SystemDrive%\Users\Public
%SystemDrive%KhôngC:C:
%SystemRoot%KhôngThe Windows directory, usually C:\Windows, formerly C:\WINNT%SystemDrive%\Windows
%TEMP% and %TMP%%SystemDrive%\Documents and Settings\{username}\Local Settings\Temp%SystemRoot%\TEMP (for system environment variables %TMP% and %TEMP%), %USERPROFILE%\AppData\Local\Temp (for user environment variables %TMP% and %TEMP%)
%USERDOMAIN%Không{userdomain}{userdomain}
%USERNAME%Không}{username}
%USERPROFILE%%SystemDrive%\Documents and Settings\{username}%SystemDrive%\Users\{username}
%windir%Không%SystemDrive%\WINDOWS%SystemDrive%\Windows

Trong danh sách này, không có biến môi trường nào tham chiếu đến vị trí của thư mục My Documents của người dùng, vì vậy không có phương pháp chuẩn nào để đặt thư mục chính của chương trình thành thư mục My Documents.